"use strict";
exports.__esModule = true;
exports.myJSON = void 0;
var myJSON = /** @class */ (function () {
    function myJSON() {
    }
    //JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
    myJSON.stringify = function (value) {
        // console.log(typeof (value));
        var type = typeof value;
        if ("undefined" === type) {
            return undefined;
        }
        if ("function" === type) {
            return undefined;
        }
        if ("number" === type) {
            return "" + value + "";
        }
        if ("boolean" === type) {
            return "" + value + "";
        }
        if ("string" === type) {
            return "" + value + "";
        }
        if ("object" === type) {
            // 检查值是否为Array
            if (value instanceof Array) {
                return "[" + value.map(myJSON.stringify) + "]"; // 递归调用stringify函数
            }
            else {
                // console.log(typeof Object.keys(value));
                // console.log(typeof Object.keys(value));
                // console.log(Object.values(value));
                // console.log(typeof Object.values(value));
                // console.log(Object.keys(value).map(JSON.stringify));
                try {
                    return ("{" +
                        Object.keys(value).map(function (key) {
                            // console.log("values " + value[key]);
                            if (value[key] === null) {
                                return '"' + key + '":' + value[key];
                            }
                            else {
                                var result = myJSON.stringify(value[key]);
                                return '"' + key + '":"' + myJSON.stringify(value[key]) + '"';
                            }
                        }) +
                        "}");
                }
                catch (error) {
                    return "null";
                }
            }
        }
        return null;
    };
    //JSON.parse() 方法将数据转换为 JavaScript对象。
    myJSON.parse = function (str) {
        // 判断str数据类型
        // 如果是boolean
        if (typeof str == "boolean") {
            if (str)
                return true;
            else
                return false;
        }
        // 如果为null
        if (str == null)
            return null;
        // 如果未number
        if (typeof str == "number") {
            return str * 1;
        }
        var str1 = str.replace(/\s*/g, "");
        var str2 = str1.slice(1, -1);
        var arr1 = str2.split(",");
        var arr2 = [];
        var obj = {};
        for (var i = 0; i < arr1.length; i++) {
            arr2.push(arr1[i].split(":"));
        }
        for (var i = 0; i < arr2.length; i++) {
            arr2[i][0] = arr2[i][0].slice(1, -1);
            arr2[i][1] = arr2[i][1].slice(1, -1);
            obj[arr2[i][0]] = arr2[i][1];
        }
        return obj;
    };
    return myJSON;
}());
exports.myJSON = myJSON;
function btn() { }
